#!/usr/bin/perl -w

#
# Funciones para la gestion de datos para las tablas LastInteraction e Interaction
# Ivan D. Claros (iclaros@unicauca.edu.co)
# Julio 28 de 2008
#


require "../init.pl";
require ('../dbData.pl');

#Asegura la existencia del registro LastInteraction para un usuario dado:
# Argumentos: Nombre de base de datos, id del autor
sub AssetLastInteraction{
    local ($dbName,$idAuthor) = @_;
    local ($sth, $sql, $numRows);
    
	
	$dbh = &openDB($dbName);
	$sql = "SELECT idAuthor FROM LastInteraction WHERE idAuthor=$idAuthor;"; 
	
	$sth = $dbh->prepare($sql);
    $sth->execute || die "No se puede ejecutar la orden SQL: $sql";
    $numRows = 0;
    while ($row = $sth->fetchrow_hashref){
		$numRows = $numRows + 1;
	}	
	$dbh->disconnect;
	
	if($numRows==0){
		_CreateLastInteraction($dbName,$idAuthor);
	}			
}

sub _CreateLastInteraction(){
	local ($dbName,$idAuthor) = @_;
    local ($sth, $sql, $numRows);    
	$dbh = &openDB($dbName);
	$sql = "INSERT INTO LastInteraction(idAuthor) VALUES($idAuthor);"; 
	$sth = $dbh->prepare($sql);
	$sth->execute || die "No se puede ejecutar la orden SQL: $sql";
	$dbh->disconnect;
}

# Actualiza los registros de Fecha y Hora
# Argumentos: Nombre de base de datos, id del autor
sub UpdateLastInteraction{
    local ($dbName,$idAuthor) = @_;
    local ($sth, $sql);
    $dbh = &openDB($dbName);
	$sql = "UPDATE LastInteraction SET moment=SYSDATE(), ip='".$ENV{REMOTE_ADDR}."' WHERE idAuthor=$idAuthor;"; 	
    $sth = $dbh->prepare($sql);
    $sth->execute || die "No se puede ejecutar la orden SQL: $sql";   
	$dbh->disconnect;
}

# Actualiza los registros de Fecha y Hora
# Argumentos: Nombre de base de datos, id del autor
sub GetLastInteraction{
    local ($dbName,$idAuthor) = @_;
    local ($sth, $sql,$numRows,%data);
    $dbh = &openDB($dbName);
	$sql = "SELECT moment FROM LastInteraction WHERE moment BETWEEN SUBDATE(SYSDATE(),INTERVAL 3 MINUTE) AND SYSDATE() AND idAuthor=$idAuthor;"; 
    $sth = $dbh->prepare($sql);
    $sth->execute || die "No se puede ejecutar la orden SQL: $sql";   
	$numRows = 0;
    while ($row = $sth->fetchrow_hashref){
		$numRows = $numRows + 1;
		$data{'moment'.$numRows}   = $row->{dayH};
	}		
	$data{numRows} = $numRows;
	$dbh->disconnect;
	return %data;
}

return 1;
